package com.beetlestech.nfe.main.biz.com.impl;

import java.sql.Time;
import java.text.DateFormat;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import com.beetlestech.nfe.fw.core.biz.AbstractDBLogic;
import com.beetlestech.nfe.main.biz.com.HbReleaseCourse;
import com.beetlestech.nfe.main.biz.com.dto.ActivitiesImageInfoDTO;
import com.beetlestech.nfe.main.biz.com.dto.GxDTO;
import com.beetlestech.nfe.main.biz.com.dto.LessonDTO;
import com.beetlestech.nfe.main.biz.com.dto.MstfileInfoDTO;
import com.beetlestech.nfe.main.biz.com.dto.MsthomeworkInfoDTO;
import com.beetlestech.nfe.main.biz.com.dto.ReleaseCourseDTO;
import com.beetlestech.nfe.main.biz.constant.CommonConstant;
import com.beetlestech.nfe.main.biz.constant.CtgCodeConstant;
import com.beetlestech.nfe.main.biz.constant.HbMessageCode;
import com.beetlestech.nfe.main.db.constant.SQLConstant;
import com.beetlestech.nfe.main.db.constant.SQLID;
import com.beetlestech.nfe.main.db.tbl.ActivitiesimageDTO;
import com.beetlestech.nfe.main.db.tbl.CoursesectionDTO;
import com.beetlestech.nfe.main.db.tbl.CoursetrialDTO;
import com.beetlestech.nfe.main.db.tbl.MstcourseDTO;
import com.beetlestech.nfe.main.db.tbl.MstfileDTO;
import com.beetlestech.nfe.main.db.tbl.MsthomeworkDTO;
import com.beetlestech.nfe.main.db.tbl.MstlessonDTO;
import com.beetlestech.nfe.main.db.tbl.OrderdetailDTO;
import com.beetlestech.nfe.main.db.tbl.SectionlessonDTO;
import com.beetlestech.nfe.main.db.tbl.StudyhistoryDTO;






public class HbReleaseCourseImpl extends AbstractDBLogic implements HbReleaseCourse, CtgCodeConstant, HbMessageCode, CommonConstant, SQLConstant {
	protected static final String HW_DETAIL = "课程表";
	protected static final String ML_DETAIL = "试听表";
	protected static final String MST_FILE = "文件表";
	//课程预览
	@Override
	public void coursePreview(Integer cId,Integer oId){
		//Orderdetail 先执行删除在新增一条
		OrderdetailDTO odto=new OrderdetailDTO();
		odto.setorderid(oId);
		odto.setgoodsid(cId);
		updateDAO.update(OrderdetailDTO.DELETE, odto);
		OrderdetailDTO odtosave=new OrderdetailDTO();
		odtosave.setorderid(oId);
		odtosave.setgoodsid(cId);
		odtosave.setstate(2);
		updateDAO.updateOne(OrderdetailDTO.INSERT, odtosave, M10040WS, ML_DETAIL);
		//Studyhistory 先执行删除
		StudyhistoryDTO sdtodedetele=new StudyhistoryDTO();
		sdtodedetele.setorderid(oId);
		sdtodedetele.setcourseid(cId);
		List<StudyhistoryDTO> listd=queryDAO.queryForObjectList(StudyhistoryDTO.EQUAL_SEARCH,sdtodedetele);
		
				for(int i=0;i<listd.size();i++){
						StudyhistoryDTO sdto=new StudyhistoryDTO();
						sdto.setorderid(oId);
						sdto.setcourseid(cId);
						sdto.setlessonid(listd.get(i).getlessonid());
						updateDAO.update(StudyhistoryDTO.DELETE, sdto);
				}
		
		//新增之前先查询课程下 所属小节
		CoursesectionDTO csDTO=new CoursesectionDTO();
		csDTO.setcourseid(cId);
		//单元集合
		List<CoursesectionDTO> listcs=queryDAO.queryForObjectList(CoursesectionDTO.EQUAL_SEARCH,csDTO);
		//小节集合
		List<MstlessonDTO> listm=new ArrayList<MstlessonDTO>();
		for(int i=0;i<listcs.size();i++){
		//存这个单元下所属的小节
			SectionlessonDTO slDTO=new SectionlessonDTO();
			slDTO.setsectionid(listcs.get(i).getsectionid());
			List<SectionlessonDTO> list = queryDAO.queryForObjectList(SectionlessonDTO.EQUAL_SEARCH,slDTO);
			for(int j=0;j<list.size();j++){
				//查询出所属小节
				MstlessonDTO mlDTO=new MstlessonDTO();
				mlDTO.setlessonid(list.get(j).getlessonid());
				mlDTO = queryDAO.queryForObject(MstlessonDTO.EQUAL_SEARCH, mlDTO);
				listm.add(mlDTO);
			}
		}
		
		
		//Studyhistory 新增数据
		for(int i=0;i<listm.size();i++){
			StudyhistoryDTO sdtoSave=new StudyhistoryDTO();
			sdtoSave.setorderid(oId);
			sdtoSave.setcourseid(cId);
			sdtoSave.setstate(1);
			sdtoSave.setisfirstwatch(1);
			sdtoSave.setlessonid(listm.get(i).getlessonid());
			Date date=new Date();
			Time send_time=new Time(date.getTime());
			java.sql.Date sendSql= new java.sql.Date(date.getTime());
			sdtoSave.setenddate(sendSql);
			sdtoSave.setendtime(send_time);
			updateDAO.updateOne(StudyhistoryDTO.INSERT, sdtoSave, M10040WS, ML_DETAIL);
		}
	}
	
	
	//根据课程id查询相关信息
	@Override
	public ReleaseCourseDTO getRcInfo(Integer cid){
		//自定义DTO
		ReleaseCourseDTO rcDTO=new ReleaseCourseDTO();
		//查询出课程DTO里的信息
		MstcourseDTO courseDTO=new MstcourseDTO();
		courseDTO.setcourseid(cid);
		courseDTO=queryDAO.queryForObject(MstcourseDTO.EQUAL_SEARCH, courseDTO);
		//上传DTO
		MstfileDTO mfDTO=new MstfileDTO();
		mfDTO.setfileid(courseDTO.getfileid());
		mfDTO=queryDAO.queryForObject(MstfileDTO.EQUAL_SEARCH, mfDTO);
		//试听课关联DTO
		CoursetrialDTO ctDTO=new CoursetrialDTO();
		ctDTO.setcourseid(cid);
		ctDTO=queryDAO.queryForObject(CoursetrialDTO.EQUAL_SEARCH, ctDTO);
		//试听课DTO
		if(null!=ctDTO){
		MstlessonDTO mlDTO=new MstlessonDTO();
		mlDTO.setlessonid(ctDTO.getlessonid());
		mlDTO=queryDAO.queryForObject(MstlessonDTO.EQUAL_SEARCH, mlDTO);
		if(null!=mlDTO){
			rcDTO.setAuditionName(mlDTO.getname());
			rcDTO.setAuditionFileId(mlDTO.getfileid());
		}else{
			rcDTO.setAuditionName("");
		}
		}
		//单元DTO
		CoursesectionDTO csDTO=new CoursesectionDTO();
		csDTO.setcourseid(cid);
		List<CoursesectionDTO> listc = queryDAO.queryForObjectList(CoursesectionDTO.EQUAL_SEARCH,csDTO);
		CoursesectionDTO[] arrdy=new CoursesectionDTO[listc.size()];
		for(int i=0;i<arrdy.length;i++){
			CoursesectionDTO cs=new CoursesectionDTO();
			cs.setname(listc.get(i).getname());
			cs.setsectionid(listc.get(i).getsectionid());
			cs.setcourseid(listc.get(i).getcourseid());
			cs.setorderby(listc.get(i).getorderby());
			arrdy[i]=cs;
		}
		String sdate=(new SimpleDateFormat("yyyy-MM-dd")).format(courseDTO.getcoursestart()); 
		String edate=(new SimpleDateFormat("yyyy-MM-dd")).format(courseDTO.getcourseend()); 
		rcDTO.setCourseName(courseDTO.getname());
		rcDTO.setPath(mfDTO.getpath());
		rcDTO.setAnnotate(courseDTO.getannotate());
		rcDTO.setCoursetypeP(courseDTO.getcoursetypep());
		rcDTO.setCoursetypeC(courseDTO.getcoursetypec());
		rcDTO.setPrice(courseDTO.getprice());
		rcDTO.setDiscount(courseDTO.getdiscount());
		rcDTO.setClassTime(courseDTO.getcourseperiod());
		rcDTO.setStartDate(sdate);
		rcDTO.setEffectiveDate(edate);
		rcDTO.setCoursedetail(courseDTO.getcoursedetail());
		rcDTO.setTargetstudent(courseDTO.gettargetstudent());
		rcDTO.setCoursetarget(courseDTO.getcoursetarget());
		rcDTO.setTeamintroduce(courseDTO.getteamintroduce());
		rcDTO.setMaterial(courseDTO.getmaterial());
		rcDTO.setCharacteristic(courseDTO.getcharacteristic());
		rcDTO.setArrdy(arrdy);
		
		return rcDTO;
	}
	//修改课程信息
	@Override
	public Integer updateReleaseCourse(
			Integer courseId,
			String courseName,
			String path, String forwardSlash, 
			String annotate,
			Integer coursetypeP,
			Integer coursetypeC,
			Double price,
			Double discount,
			Integer classTime,
			String startDate, 
			String effectiveDate, 
			String coursedetail,
			String targetstudent,
			String coursetarget,
			String teamintroduce,
			String material,
			String characteristic,
			String auditionStatus,
			String auditionName,
			Integer auditionFid,
			String status,
			String[] arrdy
			){
		
				//查询课程DTO
				MstcourseDTO courseDTO=new MstcourseDTO();
				courseDTO.setcourseid(courseId);
				courseDTO=queryDAO.queryForObject(MstcourseDTO.EQUAL_SEARCH, courseDTO);
				
			//课程分类PID
//				String owener=(CATAGORY_P_COURESE_TYPE.OWNER).toString();
//				Integer typep=Integer.parseInt(owener);
			//课程状态
				String stype=null;
				if(status.equals("1")){
					stype=(CATAGORY_P_COURSE_STATE.PUBLISHED).toString();
					Integer typeFabu=Integer.parseInt(stype);
					courseDTO.setstate(typeFabu);
				}else{
					stype=(CATAGORY_P_COURSE_STATE.SAVED).toString();
					Integer typeBaocun=Integer.parseInt(stype);
					courseDTO.setstate(typeBaocun);
				}
				//将数据格式转成DATE
				DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");            
		        try {
					  Date date = fmt.parse(startDate);
					  java.sql.Date sendSql= new java.sql.Date(date.getTime());
					  courseDTO.setcoursestart(sendSql);     //开始时间
					  Date date2 = fmt.parse(effectiveDate);
					  java.sql.Date endSql= new java.sql.Date(date2.getTime());
					  courseDTO.setcourseend(endSql); //结束时间
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		        //判断是否修改了图片
		       if(!path.equals("noImg")){
		    	// path转换
					String strPath = path.replaceAll(forwardSlash, "/");
					MstfileDTO mstfileDTO = new MstfileDTO();
					String[] temp = strPath.split("files");
					strPath="files"+temp[1];
					mstfileDTO.setpath(strPath);
					mstfileDTO.settype(0);
			//对DB执行操作
					updateDAO.updateOne(MstfileDTO.INSERT, mstfileDTO, M10040WS, MST_FILE);
		        	courseDTO.setfileid(mstfileDTO.getfileid());
		        }
			        courseDTO.setname(courseName);  			//课程名称
					courseDTO.setdiscount(discount);				//折扣
					courseDTO.setannotate(annotate);   		//概要
					courseDTO.setcoursetypec(coursetypeC);          //课程分类
					courseDTO.setcoursetypep(coursetypeP); 		                //课程分类父节点
					courseDTO.setprice(price);						                //价格
					courseDTO.setcourseperiod(classTime);              //课时
					courseDTO.setcoursedetail(coursedetail);         //课程详情
					courseDTO.settargetstudent(targetstudent);   //适合对象
					courseDTO.setcoursetarget(coursetarget);       //教学目标
					courseDTO.setteamintroduce(teamintroduce);//师资介绍
					courseDTO.setmaterial(material);						   //使用教材
					courseDTO.setcharacteristic(characteristic);    //课程特色
				updateDAO.updateOne(MstcourseDTO.UPDATE, courseDTO, M10040WS, HW_DETAIL);
				//修改试听课前 先删除之前的试听
				CoursetrialDTO ctDTO=new CoursetrialDTO();
				ctDTO.setcourseid(courseId);
				ctDTO=queryDAO.queryForObject(CoursetrialDTO.EQUAL_SEARCH, ctDTO);
				if(ctDTO!=null){
				MstlessonDTO mlDTO=new MstlessonDTO();
				mlDTO.setlessonid(ctDTO.getlessonid());
				//20150324-qindong
				//updateDAO.update(MstlessonDTO.DELETE, mlDTO);
				}
				if(auditionStatus.equals("0")){
					MstlessonDTO mstlDTO=new MstlessonDTO();
					mstlDTO.setname(auditionName); //试听课程名称
					mstlDTO.setfileid(auditionFid);		 //试听视频id
				updateDAO.updateOne(MstlessonDTO.INSERT, mstlDTO, M10040WS, ML_DETAIL);
				//修改试听先删除之前的关联记录 在插入
					CoursetrialDTO coutrDTO=new CoursetrialDTO();
					coutrDTO.setcourseid(courseId);
					coutrDTO=queryDAO.queryForObject(CoursetrialDTO.EQUAL_SEARCH, coutrDTO);
					updateDAO.update(CoursetrialDTO.DELETE, coutrDTO);
					CoursetrialDTO cDTO=new CoursetrialDTO();
					cDTO.setcourseid(courseId);
					cDTO.setlessonid(mstlDTO.getlessonid());
					updateDAO.updateOne(CoursetrialDTO.INSERT, cDTO, M10040WS, ML_DETAIL);
				}
				//先查出仍然存在的
				CoursesectionDTO coursesection=new CoursesectionDTO();
				coursesection.setcourseid(courseId);
				//单元DTO
				List<CoursesectionDTO> listc=queryDAO.queryForObjectList(CoursesectionDTO.EQUAL_SEARCH,coursesection);
				//自定义一个DTO 暂时存单元与小节关系
				List<GxDTO>listg=new ArrayList<GxDTO>();
				for(int i=0;i<listc.size();i++){
					GxDTO gx=new GxDTO();
					//存单元
					gx.setDy(listc.get(i));
				//存这个单元下所属的小节
					SectionlessonDTO slDTO=new SectionlessonDTO();
					slDTO.setsectionid(listc.get(i).getsectionid());
					List<SectionlessonDTO> list = queryDAO.queryForObjectList(SectionlessonDTO.EQUAL_SEARCH,slDTO);
					List<MstlessonDTO> listm=new ArrayList<MstlessonDTO>();

					for(int j=0;j<list.size();j++){
						//查询出所属小节
						MstlessonDTO mlDTO=new MstlessonDTO();
						mlDTO.setlessonid(list.get(j).getlessonid());
						mlDTO = queryDAO.queryForObject(MstlessonDTO.EQUAL_SEARCH, mlDTO);
						listm.add(mlDTO);
					}
					gx.setXjName(listm);
					listg.add(gx);
				}
			//修改单元DTO之前 先所有删除单元
				CoursesectionDTO cstDTO=new CoursesectionDTO();
				cstDTO.setcourseid(courseId);
				List<CoursesectionDTO> listcour = queryDAO.queryForObjectList(CoursesectionDTO.EQUAL_SEARCH,cstDTO);
				for(int i=0;i<listcour.size();i++){
					SectionlessonDTO slDTO=new SectionlessonDTO();
					slDTO.setsectionid(listcour.get(i).getsectionid());
					List<SectionlessonDTO> listsl = queryDAO.queryForObjectList(SectionlessonDTO.EQUAL_SEARCH,slDTO);
					for(int h=0;h<listsl.size();h++){
						MstlessonDTO ml=new MstlessonDTO();
						ml.setlessonid(listsl.get(h).getlessonid());
						//删除小节表
						//20150324-qindong
						//updateDAO.update(MstlessonDTO.DELETE, ml);
						//然后删除单元小节关系表
						//20150324-qindong
						//updateDAO.update(SectionlessonDTO.DELETE, listsl.get(h));
					}
					
				}//然后删除单元表
				updateDAO.update(SQLID.COURSE_SECTION_DELETE_BY, cstDTO);
				
				
				//然后重新插入单元DTO 
				for(int i=0;i<listg.size();i++){
					CoursesectionDTO csDTO=new CoursesectionDTO();
					csDTO.setcourseid(courseId);
					csDTO.setname(arrdy[i]);
					int count=i+1;
					csDTO.setorderby(count);
					updateDAO.updateOne(CoursesectionDTO.INSERT, csDTO, M10040WS, ML_DETAIL);
					
					for(int j=0;j<listg.get(i).getXjName().size();j++){
					MstlessonDTO  mstDTO=new	MstlessonDTO();
					mstDTO.setname(listg.get(i).getXjName().get(j).getname());
					mstDTO.setfileid(listg.get(i).getXjName().get(j).getfileid());
					mstDTO.sethomeworkid(listg.get(i).getXjName().get(j).gethomeworkid());
					updateDAO.updateOne(MstlessonDTO.INSERT,mstDTO, M10040WS, ML_DETAIL);
					
					SectionlessonDTO sec=new SectionlessonDTO();
					sec.setsectionid(csDTO.getsectionid());
					sec.setlessonid(mstDTO.getlessonid());
					sec.setorderby(j+1);
					updateDAO.updateOne(SectionlessonDTO.INSERT, sec, M10040WS, ML_DETAIL);
			}
		}
		//---------------------------------------------------------------------------------------------------------------
			if(arrdy.length>=listg.size()){
				for(int n=listg.size();n<arrdy.length;n++){
					CoursesectionDTO csDTO=new CoursesectionDTO();
					csDTO.setcourseid(courseId);
					csDTO.setname(arrdy[n]);
					int count=n+1;
					csDTO.setorderby(count);
					updateDAO.updateOne(CoursesectionDTO.INSERT, csDTO, M10040WS, ML_DETAIL);
				}
			}
				
				
				return courseId;
	}
	
	
	
	
	
	// 发布/保存 课程
	@Override
	public Integer saveReleaseCourse(
			//课程名称
			String courseName,
			//图片上传
			String path, String forwardSlash, 
			//概要
			String annotate, 
			//课程分类父节点
			Integer coursetypeP,
			//课程分类
			Integer coursetypeC,
			//价格
			Double price,
			//折扣
			Double discount,
			//课时
			Integer classTime,
			//开始日期
			String startDate, 
			//有效期至
			String effectiveDate, 
			//课程详情
			String coursedetail,
			//适合对象
			String targetstudent,
			//教学目标
			String coursetarget,
			//师资介绍
			String teamintroduce,
			//使用教材
			String material,
			//课程特色
			String characteristic,
			//判断是否试听  "1"为试听 "0"为不试听
			String auditionStatus,
			//试听课程
			String auditionName,
			//选择视频FID
			Integer auditionFid,
			//状态 1是发布  0是保存
			String status,
			//单元小节对象数组
			String[] arrdy
			){
		// path转换
		String strPath = path.replaceAll(forwardSlash, "/");
		// mst_file表插入
		MstfileDTO mstfileDTO = new MstfileDTO();
		String[] temp=strPath.split("files");
		strPath="files"+temp[1];
		mstfileDTO.setpath(strPath);
		mstfileDTO.settype(0);
		//对DB执行操作
		updateDAO.updateOne(MstfileDTO.INSERT, mstfileDTO, M10040WS, MST_FILE);
		
		//课程DTO
		MstcourseDTO courseDTO=new MstcourseDTO();

		//课程分类PID
//		String owener=(CATAGORY_P_COURESE_TYPE.OWNER).toString();
//		Integer typep=Integer.parseInt(owener);
		//课程状态
		String stype=null;
		if(status.equals("1")){
			stype=(CATAGORY_P_COURSE_STATE.PUBLISHED).toString();
			Integer typeFabu=Integer.parseInt(stype);
			courseDTO.setstate(typeFabu);
		}else{
			stype=(CATAGORY_P_COURSE_STATE.SAVED).toString();
			Integer typeBaocun=Integer.parseInt(stype);
			courseDTO.setstate(typeBaocun);
		}
		
		
		//将数据格式转成DATE
		DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");            
        try {
			  Date date = fmt.parse(startDate);
			  java.sql.Date sendSql= new java.sql.Date(date.getTime());
			  courseDTO.setcoursestart(sendSql);     //开始时间
			  Date date2 = fmt.parse(effectiveDate);
			  java.sql.Date endSql= new java.sql.Date(date2.getTime());
			  courseDTO.setcourseend(endSql); //结束时间
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        	courseDTO.setfileid(mstfileDTO.getfileid());
	        courseDTO.setname(courseName);  			//课程名称
			courseDTO.setdiscount(discount);				//折扣
			courseDTO.setannotate(annotate);   		//概要
			courseDTO.setcoursetypec(coursetypeC);          //课程分类
			courseDTO.setcoursetypep(coursetypeP); 		                //课程分类父节点
			courseDTO.setprice(price);						                //价格
			courseDTO.setcourseperiod(classTime);              //课时
			courseDTO.setcoursedetail(coursedetail);         //课程详情
			courseDTO.settargetstudent(targetstudent);   //适合对象
			courseDTO.setcoursetarget(coursetarget);       //教学目标
			courseDTO.setteamintroduce(teamintroduce);//师资介绍
			courseDTO.setmaterial(material);						   //使用教材
			courseDTO.setcharacteristic(characteristic);    //课程特色
		updateDAO.updateOne(MstcourseDTO.INSERT, courseDTO, M10040WS, HW_DETAIL);
		//试听课DTO
		if(auditionStatus.equals("0")){
			MstlessonDTO mlDTO=new MstlessonDTO();
			mlDTO.setname(auditionName); //试听课程名称
			mlDTO.setfileid(auditionFid);		 //试听视频id
		updateDAO.updateOne(MstlessonDTO.INSERT, mlDTO, M10040WS, ML_DETAIL);
			CoursetrialDTO ctDTO=new CoursetrialDTO();
			ctDTO.setcourseid(courseDTO.getcourseid());
			ctDTO.setlessonid(mlDTO.getlessonid());
		updateDAO.updateOne(CoursetrialDTO.INSERT, ctDTO, M10040WS, ML_DETAIL);
		}
		//单元DTO 
		for(int i=0;i<arrdy.length;i++){
			CoursesectionDTO csDTO=new CoursesectionDTO();
			csDTO.setcourseid(courseDTO.getcourseid());
			csDTO.setname(arrdy[i]);
			int count=i+1;
			csDTO.setorderby(count);
			updateDAO.updateOne(CoursesectionDTO.INSERT, csDTO, M10040WS, ML_DETAIL);
		
		}
		//返回生成Cid
		return courseDTO.getcourseid();
	}
	//新增修改小节
	@Override
	public void addLesson(
			//单元id
			Integer dyId,
			LessonDTO[] arrxj){
		//新增或修改小节之前将数据先删除在插入.
		SectionlessonDTO sl=new SectionlessonDTO();
		sl.setsectionid(dyId);
		//根据单元id 查询出所属小节id
		List<SectionlessonDTO> list=queryDAO.queryForObjectList(SectionlessonDTO.EQUAL_SEARCH,sl);
		Integer[] arrid=new Integer[list.size()];
		for(int i=0;i<list.size();i++){
			arrid[i]=list.get(i).getlessonid();
		}
		//删除关联表
		updateDAO.update(SQLID.SECTION_LESSON_DELETE_BY, sl);
		for(int i=0;i<arrid.length;i++){
			MstlessonDTO ml=new MstlessonDTO();
			ml.setlessonid(arrid[i]);
			//删除小节表
			updateDAO.update(MstlessonDTO.DELETE, ml);
		}
		for(int i=0;i<arrxj.length;i++){
			MstlessonDTO mlDTO=new MstlessonDTO();
			mlDTO.setname(arrxj[i].getname());
			if(arrxj[i].gethomeworkid()!=0){
				mlDTO.sethomeworkid(arrxj[i].gethomeworkid());
			}else{
				mlDTO.sethomeworkid(null);
			}
			mlDTO.setfileid(arrxj[i].getfileid());
			//向小节表插入信息
			updateDAO.updateOne(MstlessonDTO.INSERT, mlDTO, M10040WS, ML_DETAIL);
			//向关联表插入数据
			SectionlessonDTO slDTO=new SectionlessonDTO();
			slDTO.setsectionid(dyId);
			slDTO.setlessonid(mlDTO.getlessonid());
			slDTO.setorderby(i+1);
			updateDAO.updateOne(SectionlessonDTO.INSERT, slDTO, M10040WS, ML_DETAIL);
		}
   }
	
	
	//根据单元id 查询出所属小节
	@Override
	public LessonDTO[] getLessonBydyId(Integer dyId){
		SectionlessonDTO slDTO=new SectionlessonDTO();
		slDTO.setsectionid(dyId);
		List<SectionlessonDTO> list = queryDAO.queryForObjectList(SectionlessonDTO.EQUAL_SEARCH,slDTO);
		LessonDTO[] arrle=new LessonDTO[list.size()];
		for(int i=0;i<arrle.length;i++){
			//查询出所属小节
			MstlessonDTO mlDTO=new MstlessonDTO();
			mlDTO.setlessonid(list.get(i).getlessonid());
			mlDTO = queryDAO.queryForObject(MstlessonDTO.EQUAL_SEARCH, mlDTO);
			
			LessonDTO ld=new LessonDTO();
			Integer homeId=0;
			ld.setlessonid(mlDTO.getlessonid());
			ld.setname(mlDTO.getname());
			ld.setfileid(mlDTO.getfileid());
			if(mlDTO.gethomeworkid()==null){
				ld.sethomeworkid(homeId);
			}else{
				ld.sethomeworkid(mlDTO.gethomeworkid());
			}
			arrle[i]=ld;
		}
		return arrle;
	}
	//根据单元删除所属信息
	@Override
	public void deleteSectionAndlesson(Integer dyId){
		SectionlessonDTO slDTO=new SectionlessonDTO();
		slDTO.setsectionid(dyId);
		List<SectionlessonDTO> list = queryDAO.queryForObjectList(SectionlessonDTO.EQUAL_SEARCH,slDTO);
		for(int i=0;i<list.size();i++){
			MstlessonDTO mlDTO=new MstlessonDTO();
			mlDTO.setlessonid(list.get(i).getlessonid());
			updateDAO.update(MstlessonDTO.DELETE, mlDTO);
			updateDAO.update(SectionlessonDTO.DELETE, list.get(i));
		}
		CoursesectionDTO csDTO=new CoursesectionDTO();
		csDTO.setsectionid(dyId);
		updateDAO.update(CoursesectionDTO.DELETE,csDTO);
		
	}
	//查询所有视频
	@Override
	public MstfileInfoDTO[] getFileInfoList(){
		MstfileDTO mstfileDTO=new MstfileDTO();
		mstfileDTO.settype(1);
		List<MstfileDTO> listm=queryDAO.queryForObjectList(MstfileDTO.EQUAL_SEARCH,mstfileDTO);
		MstfileInfoDTO[] mstArr=new MstfileInfoDTO[listm.size()];
		for(int i=0;i<listm.size();i++){
			MstfileInfoDTO minfo=new MstfileInfoDTO();
			minfo.setfileid(listm.get(i).getfileid());
			minfo.setfilename(listm.get(i).getfilename());
			minfo.setpath(listm.get(i).getpath());
			minfo.settype(1);
			mstArr[i]=minfo;
		}
		return mstArr;
	}
	
	//根据课程类型查询作业
	@Override
	public MsthomeworkInfoDTO[] getHomeworkInfoList(Integer typeC){
		MsthomeworkDTO msthomeworkDTO=new MsthomeworkDTO();
		msthomeworkDTO.settype(typeC);
		List<MsthomeworkDTO> listm=queryDAO.queryForObjectList(MsthomeworkDTO.EQUAL_SEARCH,msthomeworkDTO);
		MsthomeworkInfoDTO[] mstArr=new MsthomeworkInfoDTO[listm.size()];
		for(int i=0;i<listm.size();i++){
			MsthomeworkInfoDTO minfo=new MsthomeworkInfoDTO();
			minfo.setHomeworkid(listm.get(i).gethomeworkid());
			minfo.setName(listm.get(i).getname());
			
			mstArr[i]=minfo;
		}
		return mstArr;
		
	}
	@Override
	//新增视频信息
	public void SaveVideo(MstfileInfoDTO[] mfarr){
		for(int i=0;i<mfarr.length;i++){
			MstfileDTO mstfileDTO=new MstfileDTO();
			mstfileDTO.setpath(mfarr[i].getpath());
			mstfileDTO.setfilename(mfarr[i].getfilename());
			mstfileDTO.setcoursetypec(mfarr[i].getcoursetypec());
			mstfileDTO.setyear(mfarr[i].getyear());
			mstfileDTO.settype(1);
			updateDAO.updateOne(MstfileDTO.INSERT, mstfileDTO, M10040WS, ML_DETAIL);
		}
	}
	@Override
	//广告位图片上传
	public void SaveImg(ActivitiesImageInfoDTO[] mfarr,String forwardSlash){
		//新增之前先删除表里的所有数据
		ActivitiesimageDTO aimgDTO=new ActivitiesimageDTO();
		//updateDAO.update(SQLID.ACTIVITIESIMAGE_DELETE_BY,aimgDTO);
		for(int i=0;i<mfarr.length;i++){
				MstfileDTO mstfileDTO=new MstfileDTO();
				String strPath = mfarr[i].getPath().replaceAll(forwardSlash, "/");
				String[] temp = strPath.split("files");
				strPath="files"+temp[1];
				mstfileDTO.setpath(strPath);
				mstfileDTO.settype(0);
				updateDAO.updateOne(MstfileDTO.INSERT, mstfileDTO, M10040WS, ML_DETAIL);
				aimgDTO.setactivitiesid(mfarr[i].getactivitiesid());
				aimgDTO.setfileid(mstfileDTO.getfileid());
				aimgDTO.setlastdate(getCurrentDate());
				aimgDTO.setlasttime(getCurrentTime());
				String tmp = mfarr[i].getlink();
				if(!tmp.startsWith("http://")){
					tmp="http://"+tmp;
				}
				aimgDTO.setlink(tmp);
				aimgDTO.settype(mfarr[i].gettype());
				aimgDTO.setsort(mfarr[i].getsort());
				updateDAO.update(ActivitiesimageDTO.UPDATE, aimgDTO);
			
		}
	}
}
